---@class ClientFight
ClientFight = {}
--region 方法重载
local function create()
    local arg_table = {}
    local function dispatcher(...)
        local tbl = arg_table
        local a = ...;
        local n = select("#",...)
        local last_match
        local exclude
        local i = 1
        while(i <= n) do
        --for i = 1,n do
            local t = type(select(i,...))
            if t == "nil" then
                exclude = exclude or {}
                local find = false
                for k,v in pairs(tbl) do
                    if exclude[k] ~= i and k ~= "__end" then
                        t = k
                        exclude[k] = i
                        find = true
                        break
                    end
                end
                if not find then
                    logError("重载参数错误 ".. debug.traceback(""))
                    break
                end
            end
            local n = tbl[t]
            last_match = tbl["..."] or last_match
            if not n then
                if last_match == nil then
                    if exclude then
                        i = 1
                        tbl = arg_table
                    else
                        logError("重载参数错误 "..debug.traceback(""))
                        return last_match(...)
                    end
                else
                    return last_match(...)
                end
            else
                tbl = n
                i = i + 1
            end
        end
        return (tbl["__end"] or tbl["..."])(...)
    end
    local function register(desc,func)
        local tbl = arg_table
        for _,v in ipairs(desc) do
            if v == "..." then
                assert(not tbl["..."])
                tbl["..."] = func
                return
            end
            local n = tbl[v]
            if not n then
                n = {}
                tbl[v] = n
            end
            tbl = n
        end
        tbl["__end"] = func
    end
    return dispatcher,register,arg_table
end
local function register(t,desc,name)
    local func = desc[1]
    assert(type(func) == "function")
    table.remove(desc,1)
    local func_table
    local ovName = string.gsub(name,"__overload","")
    local all = rawget(t,"__overloadAll")
    if not all then
        all = {}
        rawset(t,"__overloadAll",all)
    end
    if all[name] then
        func_table = all[name]
    else
        func_table = {}
        all[name] = func_table
    end
    local ovFunc = rawget(t,ovName)
    if  ovFunc then
        assert(func_table[name])
    else
        t[ovName],func_table[name] = create()
    end
    func_table[name](desc,func)
end
--endregion 方法重载
local function search_g(tb,name)
    if string.find(name,"__overload") ~= nil then
        local function reg(desc)
            register(tb,desc,name)
        end
        tb[name] = reg
        return reg
    end
    local v = rawget(tb,name)
    if v then
        return v
    end
    local t = ClientFight[name]
    if t then return t end
    return _G[name]
end
function ClientFight.CreateClass(className,inheritClass,interfaceClass1,interfaceClass2)
    local t = Class(className,inheritClass)
    if interfaceClass1 then Interface(t,interfaceClass1) end
    if interfaceClass2 then Interface(t,interfaceClass2) end
    t = setmetatable(t,{__index = search_g,__newindex = t.__newindex})
    ClientFight[className] = t
    setfenv(2, t)
    return t
end

---require 1 zengjiale
---
require( "Logic/ZZMathBit")

require("ClientFight/com/game/fight/consts/FighterAiConstans")
require("ClientFight/com/game/fight/consts/FightTypeConst")
require("ClientFight/com/game/fight/consts/HeroConst")
require("ClientFight/com/AbstractFight")
require("ClientFight/com/AbstractFighter")

require("ClientFight/com/game/fight/util/FighterUtils")


require("ClientFight/com/game/fight/enums/BuffEnum")
require("ClientFight/com/game/fight/enums/DamageResultTypeEnum")
require("ClientFight/com/game/fight/enums/DynamicParam")
require("ClientFight/com/game/fight/enums/EnergyChangeReasonEnum")
require("ClientFight/com/game/fight/enums/FightEnum")
require("ClientFight/com/game/fight/enums/FighterEnum")
require("ClientFight/com/game/fight/enums/FighterSignEnum")
require("ClientFight/com/game/fight/enums/FighterStateEnum")
require("ClientFight/com/game/fight/enums/FightEventEnum")
require("ClientFight/com/game/fight/enums/FinishSkillReasonEnum")
require("ClientFight/com/game/fight/enums/MoveType")
require("ClientFight/com/game/fight/enums/SkillEnum")
require("ClientFight/com/game/fight/enums/SummonsType")
require("ClientFight/com/game/fight/enums/SummonsType")

require("ClientFight/xiaoniu/fszx/module/ReportSaveTypeEnum")
require("ClientFight/xiaoniu/fszx/module/WinTypeEnum")


require("ClientFight/com/game/data/bean/ArmskillBean")
require("ClientFight/com/game/data/bean/DebrisMajorSkillTemplate")
require("ClientFight/com/game/data/bean/DebrisMinorSkillTemplate")
require("ClientFight/com/game/data/bean/GlobalTemplate")
require("ClientFight/com/game/data/bean/GuildParaTemplate")
require("ClientFight/com/game/data/bean/HeroCombinationShowTemplate")
require("ClientFight/com/game/data/bean/HeroCombinationTemplate")
require("ClientFight/com/game/data/bean/HerospecialBean")
require("ClientFight/com/game/data/bean/ProfessionAdditionTemplate")
require("ClientFight/com/game/data/bean/T_buffBean")
require("ClientFight/com/game/data/bean/T_heroBean")
require("ClientFight/com/game/data/bean/T_skillBean")
require("ClientFight/com/game/data/bean/T_skillunlockerBean")

require("ClientFight/com/game/data/GuildParaConstant")
require("ClientFight/com/game/data/Global")
require("ClientFight/com/game/data/DataManager")




require("ClientFight/com/game/fight/entity/BuffSetSkillRuleSelector")
require("ClientFight/com/game/fight/entity/Cooldown")
require("ClientFight/com/game/fight/entity/Fight")
require("ClientFight/com/game/fight/entity/Fighter")
require("ClientFight/com/game/fight/entity/FighterStats")
require("ClientFight/com/game/fight/entity/FighterBuff")
require("ClientFight/com/game/fight/entity/FightResult")
require("ClientFight/com/game/fight/entity/FightSkill")
require("ClientFight/com/game/fight/entity/FightTeam")
require("ClientFight/com/game/fight/entity/FightUsingSkill")
require("ClientFight/com/game/fight/entity/Rectangle2")
require("ClientFight/com/game/fight/entity/SkillCreateSummonAction")
require("ClientFight/com/game/fight/entity/SkillEffectAction")
require("ClientFight/xiaoniu/fszx/module/fight/controller/FightController")

require("ClientFight/xiaoniu/fszx/module/fight/domain/BattleInfo")
require("ClientFight/xiaoniu/fszx/module/fight/domain/BatchBattleInfo")
require("ClientFight/xiaoniu/fszx/module/fight/domain/FightInfo")
require("ClientFight/xiaoniu/fszx/module/fight/domain/FightMember")
require("ClientFight/xiaoniu/fszx/module/fight/domain/BatchBattleResult")
require("ClientFight/xiaoniu/fszx/module/fight/domain/BattleResult")
require("ClientFight/xiaoniu/fszx/module/fight/domain/Team")
require("ClientFight/xiaoniu/fszx/module/fight/domain/TeamMember")

require("ClientFight/test/xiaoniu/fszx/module/fight/data/DataManagerTest")
require("ClientFight/test/xiaoniu/fszx/module/fight/simulator/HeroFightLog")
require("ClientFight/test/xiaoniu/fszx/module/fight/simulator/SimulatorManager")
require("ClientFight/test/xiaoniu/fszx/module/fight/simulator/SimulatorService")
require("ClientFight/test/xiaoniu/fszx/module/fight/simulator/TeamFightLog")
require("ClientFight/test/xiaoniu/fszx/module/fight/FightTest")
require("ClientFight/test/xiaoniu/fszx/module/fight/SimulatorTest")

---require 2 tengxiaoyang
require("ClientFight/com/game/ai/interfaces/IBehaviour")
require("ClientFight/com/game/ai/interfaces/IAction")
require("ClientFight/com/game/ai/interfaces/IComposite")
require("ClientFight/com/game/ai/interfaces/ICondition")
require("ClientFight/com/game/ai/interfaces/IDecorator")
require("ClientFight/com/game/ai/interfaces/IParallel")
require("ClientFight/com/game/ai/interfaces/ISelector")
require("ClientFight/com/game/ai/interfaces/ISequence")

require("ClientFight/com/game/ai/enums/EStatus")


require("ClientFight/com/game/ai/exception/BehaviourTreeNonActionOrConditionException")

require("ClientFight/com/game/ai/abstracts/AbstractBehavior")
require("ClientFight/com/game/ai/abstracts/AbstractComposite")
require("ClientFight/com/game/ai/abstracts/AbstractLeaf")
require("ClientFight/com/game/ai/abstracts/AbstractCondition")

require("ClientFight/com/game/ai/fighter/action/AttackAction")
require("ClientFight/com/game/ai/fighter/action/MoveAction")
require("ClientFight/com/game/ai/fighter/action/MoveBackAction")
require("ClientFight/com/game/ai/fighter/action/SelectSkillAction")
require("ClientFight/com/game/ai/fighter/action/SelectSkillActionBak")
require("ClientFight/com/game/ai/fighter/action/SelectTargetAction")

require("ClientFight/com/game/ai/fighter/condition/AlreadySelectSkillCondition")
require("ClientFight/com/game/ai/fighter/condition/AlreadySelectTargetCondition")
require("ClientFight/com/game/ai/fighter/condition/CanActionCondition")
require("ClientFight/com/game/ai/fighter/condition/CanAttackCondition")
require("ClientFight/com/game/ai/fighter/condition/CanMoveCondition")
require("ClientFight/com/game/ai/fighter/condition/InAttackRangeCondition")
require("ClientFight/com/game/ai/fighter/condition/OutBorderCondition")

require("ClientFight/com/game/ai/enums/ConditionAndActionTypeEnum")
--
require("ClientFight/com/game/ai/impl/Parallel")
require("ClientFight/com/game/ai/impl/Selector")
require("ClientFight/com/game/ai/impl/Sequence")

require("ClientFight/com/game/ai/BehaviourTree")
require("ClientFight/com/game/ai/BehaviourTreesBuilder")

require("ClientFight/com/game/attribute/BaseAttribute")
require("ClientFight/com/game/attribute/BasePool")
require("ClientFight/com/game/attribute/BaseSign")
require("ClientFight/com/game/attribute/BaseState")
require("ClientFight/com/game/attribute/IAttributeCalculator")
require("ClientFight/com/game/attribute/calculator/BuffAttributeCalculator")
require("ClientFight/com/game/attribute/calculator/ProfessionAdditionCalculator")
require("ClientFight/com/game/attribute/calculator/TeamFighterCalculator")
require("ClientFight/com/game/attribute/consts/CalculatorTypeEnum")
require("ClientFight/com/game/attribute/consts/FighterAttributeEnum")

require("ClientFight/com/game/attribute/manager/AbstractFighterAttributeManager")
require("ClientFight/com/game/fight/manager/BuffEffectManager")
require("ClientFight/com/game/fight/manager/BuffManager")
require("ClientFight/com/game/fight/manager/FighterAttributeManager")
require("ClientFight/com/game/fight/manager/FightClientManager")
require("ClientFight/com/game/fight/manager/FighterManager")
require("ClientFight/com/game/fight/manager/SkillClientManager")
require("ClientFight/com/game/fight/manager/DamageManager")
require("ClientFight/com/game/fight/manager/EventManager")
require("ClientFight/com/game/fight/manager/ReportManager")

require("ClientFight/com/game/fight/buff/IBuffEffect")
require("ClientFight/com/game/fight/buff/BaseBuffEffect")

require("ClientFight/com/game/fight/cmd/ICmd")
require("ClientFight/com/game/fight/cmd/AttackCmd")
require("ClientFight/com/game/fight/cmd/EndCmd")
require("ClientFight/com/game/fight/cmd/InitCmd")
require("ClientFight/com/game/fight/cmd/MoveCmd")
require("ClientFight/com/game/fight/cmd/PrepareCmd")
require("ClientFight/com/game/fight/cmd/SkillCmd")
require("ClientFight/com/game/fight/cmd/StopCmd")
require("ClientFight/com/game/fight/cmd/SummonCmd")

require("ClientFight/com/game/fight/event/IFightDelayedEvent")

require("ClientFight/com/game/fight/skill/ISkillEffect")
require("ClientFight/com/game/fight/skill/BaseSkillEffect")
require("ClientFight/com/game/fight/skill/SkillEffectResult")

require("ClientFight/com/game/fight/util/AttackUtils")
require("ClientFight/com/game/fight/util/BuffConditionType")
require("ClientFight/com/game/fight/util/DistanceUtil")
require("ClientFight/com/game/fight/util/FighterUtils")
require("ClientFight/com/game/fight/util/Formulas")
require("ClientFight/com/game/fight/util/LogUtil")
require("ClientFight/com/game/fight/util/MathUtil")
require("ClientFight/com/game/fight/util/NumberFormatUtil")
require("ClientFight/com/game/fight/util/SkillLimitType")
require("ClientFight/com/game/fight/util/SpawnPositionType")
require("ClientFight/com/game/fight/util/TargetAreaCenterType")
require("ClientFight/com/game/fight/util/TargetRuleSelector")
require("ClientFight/com/game/fight/util/Utils")

require("ClientFight/com/game/fight/skill/effect/SkillEffect1")
require("ClientFight/com/game/fight/skill/effect/SkillEffect12100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect13101")
require("ClientFight/com/game/fight/skill/effect/SkillEffect23101")
require("ClientFight/com/game/fight/skill/effect/SkillEffect32100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect34100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect52100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect83101")
require("ClientFight/com/game/fight/skill/effect/SkillEffect114102")
require("ClientFight/com/game/fight/skill/effect/SkillEffect142100")

require("ClientFight/com/game/fight/skill/effect/SkillEffect144100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect164100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect172100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect173100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect174102")
require("ClientFight/com/game/fight/skill/effect/SkillEffect203300")
require("ClientFight/com/game/fight/skill/effect/SkillEffect224100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect272101")
require("ClientFight/com/game/fight/skill/effect/SkillEffect274101")
require("ClientFight/com/game/fight/skill/effect/SkillEffect294101")
require("ClientFight/com/game/fight/skill/effect/SkillEffect302100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect322101")
require("ClientFight/com/game/fight/skill/effect/SkillEffect324100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect332100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect342100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect342101")
require("ClientFight/com/game/fight/skill/effect/SkillEffect372100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect372101")
require("ClientFight/com/game/fight/skill/effect/SkillEffect372102")
require("ClientFight/com/game/fight/skill/effect/SkillEffect453101")
require("ClientFight/com/game/fight/skill/effect/SkillEffect453102")

require("ClientFight/com/game/fight/skill/effect/SkillEffect454101")
require("ClientFight/com/game/fight/skill/effect/SkillEffect522101")
require("ClientFight/com/game/fight/skill/effect/SkillEffect553100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect556100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect612100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect612101")
require("ClientFight/com/game/fight/skill/effect/SkillEffect613101")
require("ClientFight/com/game/fight/skill/effect/SkillEffect634100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect635101")
require("ClientFight/com/game/fight/skill/effect/SkillEffect2082100")
require("ClientFight/com/game/fight/skill/effect/SkillEffect92012101")

require("ClientFight/com/game/fight/buff/effect/combo/BuffEffect2001130")
require("ClientFight/com/game/fight/buff/effect/combo/BuffEffect2001140")
require("ClientFight/com/game/fight/buff/effect/combo/BuffEffect2001170")
require("ClientFight/com/game/fight/buff/effect/combo/BuffEffect2001200")
require("ClientFight/com/game/fight/buff/effect/combo/BuffEffect2001340")
require("ClientFight/com/game/fight/buff/effect/debris/BuffEffect420004100")
require("ClientFight/com/game/fight/buff/effect/debris/BuffEffect420006100")
require("ClientFight/com/game/fight/buff/effect/debris/BuffEffect430005100")
require("ClientFight/com/game/fight/buff/effect/debris/BuffEffect600004100")
require("ClientFight/com/game/fight/buff/effect/debris/BuffEffect800005100")

require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect13100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect14100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect25100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect25103")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect44100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect44101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect45100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect53100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect55100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect63100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect64100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect64101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect75101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect83100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect93101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect108100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect112100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect115100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect125100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect128100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect138100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect143100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect174100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect174102")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect175100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect182100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect185101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect202102")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect215100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect216300")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect216400")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect222100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect223100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect225100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect225101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect225102")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect228100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect235100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect242100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect242101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect248100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect255100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect263100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect264100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect274103")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect282100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect283100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect285100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect286100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect292100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect302102")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect312100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect325100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect335100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect335101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect338100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect342100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect352101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect365100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect373101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect382100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect384101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect392100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect392101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect395100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect398100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect412100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect415100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect425100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect441101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect445100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect453100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect454100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect463100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect465100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect466101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect472100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect475100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect484101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect484102")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect485100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect485101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect486100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect492101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect494101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect495100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect496100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect496403")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect502100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect504100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect505100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect506100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect515100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect523102")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect525101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect533100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect534100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect545100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect546100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect546101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect552101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect554101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect572100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect575100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect576100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect581100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect583103")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect592100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect593100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect593101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect595100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect595101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect603100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect603101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect604100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect607100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect613100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect613101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect613103")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect615100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect615101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect615102")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect615103")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect615203")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect615204")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect615305")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect634101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect636100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect682101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect683100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect684100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect685100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect688100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect3802100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect4203100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect4205101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect4605100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect5205100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect5205101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect90011000")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect92004101")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect92023100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect92032100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect92032102")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect92042102")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect92053100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect92055100")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect374100000")
require("ClientFight/com/game/fight/buff/effect/specific/BuffEffect375100000")


require("ClientFight/com/game/fight/buff/effect/BuffEffect1")
require("ClientFight/com/game/fight/buff/effect/BuffEffect2")
require("ClientFight/com/game/fight/buff/effect/BuffEffect3")
require("ClientFight/com/game/fight/buff/effect/BuffEffect4")
require("ClientFight/com/game/fight/buff/effect/BuffEffect5")
require("ClientFight/com/game/fight/buff/effect/BuffEffect6")
require("ClientFight/com/game/fight/buff/effect/BuffEffect7")
require("ClientFight/com/game/fight/buff/effect/BuffEffect8")
require("ClientFight/com/game/fight/buff/effect/BuffEffect9")
require("ClientFight/com/game/fight/buff/effect/BuffEffect10")
require("ClientFight/com/game/fight/buff/effect/BuffEffect11")
require("ClientFight/com/game/fight/buff/effect/BuffEffect12")
require("ClientFight/com/game/fight/buff/effect/BuffEffect16")
require("ClientFight/com/game/fight/buff/effect/BuffEffect20")
require("ClientFight/com/game/fight/buff/effect/BuffEffect21")
require("ClientFight/com/game/fight/buff/effect/BuffEffect22")
require("ClientFight/com/game/fight/buff/effect/BuffEffect23")
require("ClientFight/com/game/fight/buff/effect/BuffEffect25")
require("ClientFight/com/game/fight/buff/effect/BuffEffect26")
require("ClientFight/com/game/fight/buff/effect/BuffEffect27")
require("ClientFight/com/game/fight/buff/effect/BuffEffect28")
require("ClientFight/com/game/fight/buff/effect/BuffEffect31")
require("ClientFight/com/game/fight/buff/effect/BuffEffect41")

require("ClientFight/com/game/fight/buff/effect/BuffEffect43")
require("ClientFight/com/game/fight/buff/effect/BuffEffect44")
require("ClientFight/com/game/fight/buff/effect/BuffEffect45")
require("ClientFight/com/game/fight/buff/effect/BuffEffect46")
require("ClientFight/com/game/fight/buff/effect/BuffEffect47")
require("ClientFight/com/game/fight/buff/effect/BuffEffect49")
require("ClientFight/com/game/fight/buff/effect/BuffEffect50")
require("ClientFight/com/game/fight/buff/effect/BuffEffect51")
require("ClientFight/com/game/fight/buff/effect/BuffEffect52")
require("ClientFight/com/game/fight/buff/effect/BuffEffect53")
require("ClientFight/com/game/fight/buff/effect/BuffEffect55")
require("ClientFight/com/game/fight/buff/effect/BuffEffect58")
require("ClientFight/com/game/fight/buff/effect/BuffEffect60")
require("ClientFight/com/game/fight/buff/effect/BuffEffect61")
require("ClientFight/com/game/fight/buff/effect/BuffEffect62")
require("ClientFight/com/game/fight/buff/effect/BuffEffect63")
require("ClientFight/com/game/fight/buff/effect/BuffEffect64")
require("ClientFight/com/game/fight/buff/effect/BuffEffect65")
require("ClientFight/com/game/fight/buff/effect/BuffEffect66")
require("ClientFight/com/game/fight/buff/effect/BuffEffect67")
require("ClientFight/com/game/fight/buff/effect/BuffEffect68")
require("ClientFight/com/game/fight/buff/effect/BuffEffect69")
require("ClientFight/com/game/fight/buff/effect/BuffEffect71")
require("ClientFight/com/game/fight/buff/effect/BuffEffect72")
require("ClientFight/com/game/fight/buff/effect/BuffEffect73")
require("ClientFight/com/game/fight/buff/effect/BuffEffect74")
require("ClientFight/com/game/fight/buff/effect/BuffEffect75")
require("ClientFight/com/game/fight/buff/effect/BuffEffect76")
require("ClientFight/com/game/fight/buff/effect/BuffEffect77")
require("ClientFight/com/game/fight/buff/effect/BuffEffect78")
require("ClientFight/com/game/fight/buff/effect/BuffEffect79")
require("ClientFight/com/game/fight/buff/effect/BuffEffect80")
require("ClientFight/com/game/fight/buff/effect/BuffEffect81")
require("ClientFight/com/game/fight/buff/effect/BuffEffect82")
require("ClientFight/com/game/fight/buff/effect/BuffEffect83")
require("ClientFight/com/game/fight/buff/effect/BuffEffect84")
require("ClientFight/com/game/fight/buff/effect/BuffEffect85")
require("ClientFight/com/game/fight/buff/effect/BuffEffect86")
require("ClientFight/com/game/fight/buff/effect/BuffEffect87")
require("ClientFight/com/game/fight/buff/effect/BuffEffect88")
require("ClientFight/com/game/fight/buff/effect/BuffEffect89")
require("ClientFight/com/game/fight/buff/effect/BuffEffect90")


--[[规范
1、对象创建和继承 使用Class方法：ClientFight.CreateClass(classname, super) super：父类table
    --例如：local Fight = ClientFight.CreateClass("Fight",AbstractFight)
2、对象接口实现 使用Interface方法：
    --例如：local AbstractComposite = ClientFight.CreateClass("AbstractComposite",nil,AbstractBehavior)
3、注释规范：
    ---@class 要写在定义的类名上，紧挨着，放其他位置，没有代码提示了
    例如
        --- @class Fight
        local Fight = Class("Fight",AbstractFight)


    --- @type 要写在属性的定义处，紧挨着，放其他位置，没有代码提示了
    例如
        ---@type Fighter
        self.flyBegin = Fighter.New();
]]



